Cellular telephones have recently become increasingly popular for mobile voice communication, as well as for the exchange of text messages and other types of data. For voice communication, cellular telephone systems provide similar services as the fixed, wire-based telephony system, or PSTN (public switched telephony network), except that cellular telephone systems are based upon signal transmission through radio frequency signals rather than wires. Hence, cellular telephones are also termed “wireless telephones”, and communication over such telephones is termed “wireless communication”.
One advantage of cellular telephones is that cellular telephones permit mobile communication, such that subscribers are able to communicate while traveling, or otherwise when subscribers are not at a fixed physical location. In addition, cellular telephones permit subscribers to be contacted regardless of the location of the subscribers. These advantages of mobile communication are also useful for the exchange of data, such as for text messages and even Web pages, for example. Cellular telephones are able to receive text messages through message exchange protocols such as SMS (short message service), for example, which permit one-to-one communication between cellular telephones through text messages. In addition, protocols such as the WAP (wireless application protocol) and MMS (multimedia messaging system) enable cellular telephones, which are suitably enabled to receive Web pages and multimedia messages. Thus, cellular telephones potentially provide a full communication solution for all of the different types of electronic communication for a subscriber.
However, cellular telephones have a number of disadvantages over other types of computational devices which are used to exchange data, such as desktop computers, for example. Cellular telephones have limited resources, and as such can be considered to be limited resource devices. Cellular telephones are limited by at least one of available memory, storage space, size of the display screen, and/or computational power, as represented by the ability to perform various data processing tasks. These limitations are imposed by the requirements of portability, convenient and simple operation, battery lifetime, weight and size. In addition, the type of limitations and the hardware specifications of each cellular telephone, or other related handheld device, also differ between, cellular telephone service providers and even manufacturers. Thus, designing a single type of application which is suitable for all cellular telephones, for example, is clearly very difficult.
In addition, the heterogeneity of this computational environment extends to the types of communication protocols according to which these different cellular telephones communicate for data transmission. As described above, three of these protocols include SMS, for character-based messages only, MMS, for multimedia messages and WAP, for more browsing Web-based content which may also include graphics. Other protocols include “I-mode”, the packet-based cellular telephone data transmission protocol of the Japanese company, NTT DoCoMo (Japan).
Unlike the static content which is delivered through WAP or I-mode, the Java 2 Micro Edition (J2ME) standard provides a platform for the development and implementation of dynamic content on limited-resource mobile devices. J2ME is a special version of the popular Java programming language (originally developed by Sun Microsystems), which was adapted to the limitations of consumer and embedded devices with limited resources. J2ME is being defined as an industry standard by companies which manufacture limited resource devices, such as Motorola, Nokia and Palm. Another emerging standard is the Generic Content Download Over The Air Specification, which is defined by the Open Mobile Alliance (OMA). This specification defines a simple protocol which allows multiple media types, such as image, audio and video files to be downloaded over the air to mobile devices.
JSR 124, which is defined by the Java Community Process (JCP), defines a Java 2 Enterprise Edition (J2EE) extension for client provisioning of J2ME applications and other content types. However, this Java Specification Request (JSR) defines only some of the external interfaces of such systems, while the business logic is left out of scope. The business logic of the provisioning system includes elements such as billing models, payment methods, notification schemes, discounts, etc. Such elements typically vary from one service provider to another and thus are not addressed by existing standards.